package com.example.bughuangkai.vo;

import com.example.bughuangkai.constans.ResultCode;
import lombok.Data;

/**
 * Created by 黄凯 on 2022/2/12 0012 18:03
 *
 * @author 黄凯
 * 永远相信美好的事情总会发生.
 */
@Data
public class ReturnT<T> {

    private int code;//状态码,通过状态码可以快速的识别出是什么结果,相同的状态不管在什么接口中应该使用同一个状态码

    private String msg;//针对状态码的提示

    private T result;

    public static <T> ReturnT<T> success() {
        return error(ResultCode.SUCCESS, "成功", null);
    }

    public static <T> ReturnT<T> success(T result) {
        return error(ResultCode.SUCCESS, "成功", result);
    }

    public static <T> ReturnT<T> error() {
        return error(ResultCode.FAIL, "失败", null);
    }

    public static <T> ReturnT<T> error(String msg) {
        return error(ResultCode.FAIL, msg, null);
    }

    public static <T> ReturnT<T> error(String msg,T result) {
        return error(ResultCode.FAIL, msg, result);
    }

    public static <T> ReturnT<T> error(int code, String msg, T result) {
        ReturnT<T> r = new ReturnT<T>();
        r.setCode(code);
        r.setMsg(msg);
        r.setResult(result);
        return r;
    }
}
